What ?
------

MovieUnreal2002 is my extension to Yoda's MovieUnreal (http://www.perilith.com/movieunrealplusplus/). It is designed to create high-quality movies (AVI, MPEG,..) from UT demos.

How ?
-----

The Engine is forced to render at a fixed, user-specified framerate, taking as long as it needs to render each frame. After a frame has finished it is postprocessed and saved as BMP, JPG or appended to an AVI.
Framegrabbing can be toggled using the F12 key. 

Install
-------

Simply copy all files to your 'UnrealTournament/System/' Directory. It is safe to overwrite older versions of MovieUnreal and it's support Files. If you already have an MovieUnreal436.ini you can continue to use it, otherwise you can make a copy of your UnrealTournament.ini and rename it to MoiveUnreal436.ini. If no ini is present Unreal will create one upon first execution.

Interface
---------

Run MovieUnreal436.exe and a dialog will pop up. This dialog is seperated into three sections :

Output Settings : 
Here you can choose the format to export grabbed frames in. 'Shots (BMP)' will create uncompressed bitmap files for each frame. 'Shots (JPG)' exports frames as jpeg files, which are significantly smaller than their bmp counterparts. Note that jpg is a lossy compression (even at quality 100%).
'Video (AVI)' will create a single file only (thereby reducing diskIO and making filemanagement easier). Any installed videocodec can be used for avicompression, but if you create uncompressed avi's make sure they don't exceed 2Gb in size. Saving frames as divx with a quality setting of 100% creates significantly smaller files than exporting to JPG but at the cost of reduced visual quality.
It is important that choosing the Avi-Codec is the last thing you do in the dialog, otherwise later changes to filename or scale settings will be unknown to the codec.

When editing the filename you can use any relative or absolute path you like ("video\frame%i.jpg" e.g.) but make sure that: all directories already exist, you don't change the fileextension (jpg) or reimporting the files will become difficult ;) and place the wildcard "%i" (short for index) somewhere in your filename if you're exporting a sequence of files.

If you check the 'Create subdirectories' checkbox MovieUnreal will automatically create a new "captureX\" directory on each run and place shots there ("capture1\", "capture2\", etc. strings are prepended to your path). Please note that avi's are not placed inside autosubdirs and that automatic directories don't work with absolute filenames (if you enter 'f:\video\shot%i.jpg' as filename it might create 'capture5\f:\video\shot%i.jpg' or other invalid pathes).

Rendering :
Choose the framerate you want to render at. If 30 FPS is selected here shots will be created so that they are in 'realtime' when played at 30fps. Smaller settings (like 25fps) can speedup rendering and make the resulting movie smaller, since fewer frames have to be grabbed and stored - but smaller fps settings will also (of course) make the final movie less smooth.

If you check 'Enable FPS changes' you can change the renderingspeed while the Engine is running (using F3-F11 keys) while this is intended to be used only when you are not recording (to make playback faster/slower while looking for the right sequence) it can be used during record as well.
Using 'Start capturing immediately' you can turn off the need to press F12 to start recording - useful if your not recording a demo but some machinima.
The 'Gamma correct output' switch is still somewhat experimental. Since usually grabbed frames are much too dark (data grabbed from videomemory is not gammacorrected by the gfxcard) this option enables you to let MovieUnreal use an additional filter to enhance the image brightness.

Frame Size :
Usually videos are created at a much lower resolution (640x480, 512x384 or even lower) than you play UT in. And while it is the fastest solution to simply let UT render directly in 640x480 you can get much better results when rendering at 800x600(x32) and scaling the result down to the size you plan to make your video at. Of course resizing can be done later by your videoediting software, but doing it directly in MovieUnreal reduces the amount of temporal data - saving HD space and speeding up later videoediting.
If Width and Height are set to the same size unreal is rendering at, no scaling will happen (speed improvement) otherwise all frames are scaled to fit the values you supplied at Width and Height before they are stored.
Altough highly optimized code is used for scaling this is still a timeconsuming operation. To speed things up you can select a filteralgorythm as a speed/quality compromise:
'Point Sample' - fastest , poor quality
'Bilinear' - very fast , ok if imagesizes are similar
'Bicubic' - fast , good quality
'Super Sampling' - slow , best quality

All settings you make in MovieUnreal (except the avi codec) are stored and will be defaults when you start MoiveUnreal the next time.

Movie Making:
-------------

After setting up MovieUnreal the UT Engine will start, and you might select and run your demo like you would in normal Unreal. The userinterface and demoplayback is not synchronized to the real time anymore (since MovieUnreal is rendering at a fixed fps rate) and will therefor run much faster (Running at a fixed rate of 30fps where your PC can usually deliver 90fps creates the impression everything is 3times faster).
If this annoys you (and the 'enable FPS changes' box is checked) you can use F3-F11 keys (F3 beeing very fast and F11 quite slow) to adjust playbackspeed to your PC. 

When you want to start recording (unless you selected 'capture immediately') just press F12 - the renderingspeed will be automatically reset to the value you provided in the Dialog and framegrabbing will start. To stop grabbing simply hit F12 another time.. 

If you press a speedchanging key while you are grabbing the rendering speed will be changed - in the resulting avi this will create a slomo or turbo effect, depending on your change. But I strongly recommend that you use a videoediting software to create such effects instead ;)

Keyboard setup:
---------------

 F12 = start / stop capturing

 F11 (and F10) = 240fps
 F9 = 120fps
 F8 = 60fps
 F7 = 30fps
 F6 = 25fps
 F5 = 20fps
 F4 = 15fps
 F3 = 10fps

Unreal Setting:
---------------

All Videosettings (resolution, rendering quality,..) are stored in the MovieUnreal436.ini - they dont interfere with the settings you use when playing (UnrealTournament.ini). This is useful since you can use real high-quality settings when rendering a movie (World&Skin details High, Coronas on, 32bit, ...) because it doesnt matter how long it takes to create a single frame.

Tips:
-----

Turn the HUD off if you don't want the playernames to appear when pointing at them (while beeing spectator) - but please note that hudchanges are stored in the 'user.ini' - so better make sure you turn it back on when playing UT for the next time ;)
Start your demos with "?timebased" otherwise the resulting avi is not guaranteed to show them at the correct speed. Try "?timebased?3rdperson" as well and do some 'real time camera motion' ;) 
If you minimize or maximize MovieUnreal turn grabbing off before. 
When grabbing in windowed mode make sure your windowsize is something resonable (multiples of 8 or 16 in both dimensions) - grabbing from a 601x437 window might fail due to alignment errors.

Argon.